1. Field of the Invention
The present invention relates to a flexible system for knowledge acquisition for use in developing an expert system, and more particularly, to a flexible interface to an expert system shell which facilitates the task of knowledge acquisition, knowledge refinement, knowledgebase addition/modification, knowledgebase maintenance and information management relating to specific expert system projects.
2. Description of the Prior Art
Artificial intelligence systems, or so-called expert systems, have become more commonly used in the work place. Generally, such systems are provided to enable the users to input data relating to a particular project and to maintain this data in a so-called knowledgebase. An inference engine asks questions of the user and determines from the responses and data stored in the knowledgebase what action should be taken. In particular, in accordance with predetermined rules and chaining mechanisms (the rulebase), the inference engine "learns" certain information about the process the data in the knowledgebase relates to and can be programmed to provide the necessary outputs in response to particular inputs relations.
Although expert systems are generally very helpful in systems where real-time feedback is not necessary, in the context of manufacturing their use has been limited because they are difficult to implement and even more difficult to keep updated. This is partially because the expert system is typically operated by an expert system specialist (knowledge engineer) who is not particularly familiar with the process being controlled by the expert system. Thus, when changes to the knowledgebase or rulebase must be made, the knowledge engineer must track down the person with the answer. Accordingly, the effectiveness of a typical expert system is limited by the ability of those maintaining the expert system to get the necessary updating information. It is desired that a better data acquisition process be developed so that the knowledgebase of such expert systems can be more accurately maintained.
Generally, artificial intelligence technology has not been widely used by engineers other than those engineers, such as knowledge engineers, who are familiar with artificial intelligence software. This is unfortunate, for even though many technically skilled people use workstations or minicomputers in some form to get their job done, few such people have been able to harness and use artificial intelligence technology in a sensible and practical manner. This result is most likely due to the tremendous learning curve required to learn artificial intelligence technology so that it may be used appropriately. As a result, many technically skilled people who may have benefited from the use of artificial intelligence technology have either used the technology inappropriately or ignored it all together. It is desired that some mechanism be provided to demystify artificial intelligence technology so that it can be put into the hands of such people so that they can make practical use of this technology.
Those skilled in the artificial intelligence art realize that artificial intelligence does not help in all situations but is particularly well suited for use in situations where the problem domain is not well defined and one needs the benefit of experience in order to solve the problems. Artificial intelligence is also of great help in reducing transitions from one sub-problem to another. For example, most Unix.RTM. users have had a variety of software and other tools which help them with their jobs. However, such tools are typically point tools that need to be used together. Typically, the person using the tools develops some pattern of using these tools over a period of time. Unfortunately, when this person moves on to a new task or job, the new person taking over the old task has to spend lots of time trying to master the previous usage pattern. Although such tools may have good manuals, the art of massaging the output from one software tool so that it means something to another software tool as input is a task that is mainly gained through experience. As a result, when engineers change tasks or jobs, the overall productivity of the company is significantly reduced because of the ramp-up time of the new person. It is thus desired that a tool be developed which allows persons to organize all the point tools into a higher level of granularity, such as tasks, so they can concentrate on the tasks without having to worry about the minute details implemented by these tasks. It is believed that an expert system may be a partial solution of this problem; however, as noted above, getting this technology in the hands of those who need it has not heretofore been entirely successful.
Because of the complicated nature of artificial intelligence technology, the training time for new users of the technology is quite long and results in high training costs. It is desired that a mechanism be provided which allows the user to access the simple principles of artificial intelligence technology while also hiding the details thereof so that the technology may be learned more quickly. It is also desired that the artificial intelligence technology be presented to the trainers in a context where they are more likely to feel comfortable. For example, since many computer users are familiar with the use of mouses as pointing devices along with bitmap graphics based user interfaces, such as windows, it is desired that artificial intelligence technology be presented to the user by way of such a user-friendly interface so that new users are more comfortable with the artificial intelligence technology.
Artificial intelligence systems are generally difficult to use because they are based on computer languages such as lisp or to a lesser extent prolog. Such languages are generally quite unfamiliar to those users who are accustomed to traditional computer languages such as C, Pascal or Fortran. Moreover, it has been difficult to interface the lisp or prolog environments to already existing tools in meaningful ways because of the required changes in data structures. Furthermore, lisp based packages are not designed to run efficiently on workstations since they require dedicated lisp machines, which are quite expensive. Also, lisp based packages tend to require a lot of memory. A less expensive and easier to use system for accessing artificial intelligence technology is thus desired.
Despite the above-mentioned limitations, expert systems have been used with some success to diagnose defects on integrated circuit wafers in photolithography. Such expert systems operate by indicating the class of defect which has been detected and suggesting the proper way of eliminating the defect. However, as noted above, such systems are generally written in prolog or lisp, require lots of internal memory, and are not upgradable. However, to the present inventors' knowledge, such systems have only been developed for research-oriented environments and have not been applied in the manufacturing environment. As a result, the rules produced in such prior art expert systems generally have conflicting objectives with those needed in the manufacturing environment. Moreover, such systems have not heretofore provided knowledge based editing tools, nor have such systems provided means for linking the knowledgebase to an easy to use software platform. Furthermore, such systems are quite complicated and generally of little use to the persons who would provide the information to the knowledgebase. It is desired to improve upon such expert systems so that the power of artificial intelligence can be applied to manufacturing processes for providing automatic controls of such processes.
Accordingly, there is a long felt need in the art for an expert system which facilitates the task of knowledge acquisition, knowledge refinement, knowledgebase addition/modification, knowledgebase maintenance and information management relating to specific expert system projects so that artificial intelligence can be used more effectively and efficiently in the manufacturing environment. In particular, it is desired to develop an interface to an expert system shell in such a manner that the underlying processes of the expert system need not be known by the user. The present invention has been designed to meet these needs.